// pages/paihang/paihang.js
const app = getApp()
var user;
var userId;
var users;
var page=1;


Page({

    /**
     * 页面的初始数据
     */
    data: {
      arr:[
        {tag:true,text:"你好",head:"../../inco/1.jpg"},
        {tag:false,text:"您好",head:"../../inco/2.jpg"},
        {tag:true,text:"你叫啥",head:"../../inco/1.jpg"},
        {tag:false,text:"我叫小豪",head:"../../inco/2.jpg"},
        {tag:true,text:"背一首诗",head:"../../inco/1.jpg"},
        {tag:false,text:"寒雨连江夜入吴，平明送客楚山孤。洛阳亲友如相问，一片冰心在玉壶。",head:"../../inco/2.jpg"},
      ],
      inputvalue:'',//用于同步保存输入框中的值，以发送给后端
      //inputfeel:'',//
      scrolltop:1000,//用于聊天界面在有新消息时自动弹起的参数，与scroll-top属性相连
      flag:false,//用于语音按键的开关判断true为开，false为关
      yuyin_img:"../../inco/yuyin.png",//用于语音按钮标识的显示
      yuyin_text:"",//用于保存后端AI返回的识别内容
      yuyin_speack:""//用于调试打印录制的音频信息
    },
    yuyin:function(){
      //1.在data中设置flag为false
      //2.按钮点击时执行下面的函数
      //每次点击改变flag的值 为了做一个开关按钮的功能
      this.data.flag = !this.data.flag
      console.log(this.data.flag)
      if (this.data.flag){
        this.setData({yuyin_img:"../../inco/yuyin2.png"})//更新语音按钮的标识，以表示正在录音
       console.log("开始录音")
        let myrecord=wx.getRecorderManager()//获取录音的工具
         this.setData({ myrecord: myrecord})//把录音工具保存到data中
          myrecord.start({ format:"mp3"})//开始录音
    //监听录音工具停止录音的事件:当录音停止了就会调用函数
          myrecord.onStop(
            (res)=>{
          console.log(res)//获取了录音文件的信息
          this.setData({yuyin_speack:res.tempFilePath})//将语音的地址字符串给yuyin_speack
          console.log(this.data.yuyin_speack)//打印录制的音频信息
          /*将语音的文件转化为based4格式，因为AI语音识别的要求*/
          let data1=wx.getFileSystemManager().readFileSync(res.tempFilePath,'base64')
          console.log(data1)
          //给后端发录音文件，因为发送的base64字符串过长，超出了 GET 请求（默认）的限度，所以使用 POST 请求方式
          wx.request({
            method:"POST",
            url: 'http://192.168.0.101:7001/speech',
            data:{
              info:data1
            },
            success:(res)=>{
              console.log(res);
              this.setData({yuyin_text:res.data.data.data.text})//获取返回的语音数据
             /*将返回的识别内容加入arr数组中，以显示在聊天界面*/
              this.data.arr.push(
                {
                  tag:false,
                  text:res.data.data.data.text,
                  head:"../../inco/2.jpg"
                })
                this.setData({arr:this.data.arr})
              this.setData({scrolltop:1000})
            }
          })
     }) 
  }
  else{
    console.log("结束录音 可以获取录音文件了")
    this.data.myrecord.stop()//停止录音
    this.setData({yuyin_img:"../../inco/yuyin.png"})//更换录音标识为关闭
    this.data.arr.push(
      {
        tag:true,
        text:"语音已发送",
        head:"../../inco/1.jpg"
      })
      this.setData({arr:this.data.arr})
      this.setData({scrolltop:1000})
     
      }
 },
 // 发送按钮的点击事件（智能闲聊功能）
adddata:function(){
  var new_data=this.data.arr;
  new_data.push(
    {
      tag:true,
      text:this.data.inputvalue,
      head:"../../inco/1.jpg"
    }
  )
  this.setData({arr:new_data})
  this.setData({scrolltop:1000})

  //发送数据（下面data中的内容）给后端，并用success获取后端返回的数据
  wx.request({
    url: 'http://192.168.0.101:7001/text2',
    data:{
      info:this.data.inputvalue
    },
    success:(res)=>{
      console.log(res.data.data.data.answer);
      this.data.arr.push(
    {
      tag:false,
      text:res.data.data.data.answer,
      head:"../../inco/2.jpg"
    })
    this.setData({arr:this.data.arr})
    this.setData({scrolltop:1000})
    }
  })

},
// 与界面输入框绑定实时获取输入框内容
bindinput:function(e){
  this.setData({inputvalue:e.detail.value})
  console.log(e.detail.value)
},
    hotListSort: function() {
        var arr_length = this.data.hotList.length;
        // 按人气排序获取数据数组的长度
        for(var i=0; i<arr_length; i++) {
          for(var j=0; j<arr_length - i - 1; j++) {
            let arr_popularity1 = this.data.hotList[j].popularity;
            let arr_popularity2 = this.data.hotList[j + 1].popularity;
            let arr_index1 = this.data.hotList[j];
            let arr_index2 = this.data.hotList[j+1];
            if(arr_popularity1<arr_popularity2) {
              // 对比相邻两个数组元素的大小
              let zhongjie1 = arr_index2.popularity;
              let zhongjie2 = arr_index2.title;
              let zhongjie3 = arr_index2.img;
              let zhongjie4 = arr_index2.author;
              let zhongjie5 = arr_index2.introduce;
              let zhongjie6 = arr_index2.status;
              // 把小的数组元素的值赋值给一个中介
              arr_index2.popularity = arr_index1.popularity;
              arr_index2.title = arr_index1.title;
              arr_index2.img = arr_index1.img;
              arr_index2.author = arr_index1.author;
              arr_index2.introduce = arr_index1.introduce;
              arr_index2.status = arr_index1.status;
              // 把大的数组元素赋值给小的数组元素
              arr_index1.popularity = zhongjie1;
              arr_index1.title = zhongjie2;
              arr_index1.img = zhongjie3;
              arr_index1.author = zhongjie4;
              arr_index1.introduce = zhongjie5;
              arr_index1.status = zhongjie6;
            }
          }
        }
        this.setData({
          hotList: this.data.hotList,
        })
      },
    goToNotice6: function(parm){
        wx.navigateTo({
            url: '/pages/paihang2/paihang2',//要跳转到的页面路径
      })
      },
      goToNotice12: function(parm){
        wx.navigateTo({
            url: '/pages/paihang1/paihang1',//要跳转到的页面路径
      })
      },

      
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.hotListSort();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})